% 简要演示了色散介质中两类波的叠加，并体现了群速度与相速度
% Gitee Repo

clc
clear

global T;
global w;
global k;
global v;

function setparas()
  global T;
  global w;
  global k;
  global v;

  for n = 1:2
    w(n) = 2*pi./T(n);
    k(n) = w(n)/v(n);
  endfor
end

T(1) = 1; %波1、波2 这两列波的周期、波速。在色散介质中，波速可能和波的周期有关。
T(2) = 0.9;
v(1) = 1;
v(2) = 0.9;
setparas();

vg = (w(1)-w(2)) / (k(1) - k(2)) %群速度
vp = (w(1)+w(2)) / (k(1) + k(2)) %相速度
t=1;
x = 0:0.05:20;

figure();
n = 1;
x0 = 0;
x1 = 0;

for t = 0:0.1:9
  clf;
  hold on;
  axis equal

  a = k(1).*x-w(1).*t;
  b = k(2).*x-w(2).*t;

  f = sin(a); %波1
  g = sin(b); %波2

  m = f+g;
  m1 = cos((a-b)/2);
  m2 = sin((a+b)/2);

  plot(x,m, 'b');
  plot(x,2*m1, 'r');

  xp = vp*t;
  scatter(xp,0,'b');

  xg = vg*t;
  scatter(xg,2,'r');

  drawnow
  pause(0.01);
  n++;
end

